// pages/operation/rollCall/rollCallIndex/index.js
import { ClassModel } from "../../../../api/api-work/classModel.js"
import { timestampToTime } from "../../../../utils/index.js"
const classModel = new ClassModel()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    spotMap: {},
    rollCallDatas: [], // 点名数据
    total: 0,
    currentSelectDay: "", // 当前选中的日期

    // 调整课次
    showSchedule: false,
    scheduleObj: {
      id: "", // 
      cofId: "",
      orderNo: "",
      className: "", // 班级
      classDate: "", // 课程日期
      classStartTime: "", // 上课时间
      classEndTime: "", // 下课时间
      teacherName: "", // 上课老师
      classRoomName: "", // 上课教室
      totalNum: "", // 上课学员
      type: "", // 1: 调整此次课次  2：调整此次及后续课次
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    // 1.获取有点名的日期
    await this.getOrderDate()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  async onShow() {
    await this.getOrderDate()
    // 更新调整课次回调后走这里
    if (this.data.currentSelectDay) {
      this.getOrdeListByDate(this.data.currentSelectDay)
    }
  },

  // 获取有点名数据的日期
  async getOrderDate() {
    // 获取当前用户id
    const userId = wx.getStorageSync('userInfo').id;
    // 根据用户id，获取当前用户有点名的日期
    classModel.getOrderDateListApi({ teachAssistant: userId }).then(res => {
      this.setData({
        spotMap: res
      })
    })
  },

  // 点名 日期改变的回调
  selectDay({ detail }) {
    this.setData({
      currentSelectDay: detail
    })
    this.getOrdeListByDate(detail)
  },

  // 根据日期获取点名数据
  getOrdeListByDate(date) {
    // 获取当前用户id
    const userId = wx.getStorageSync('userInfo').id;
    classModel.getOrdeListApi({ classDates: date, teachAssistant: userId, pageNum: 1, pageSize: 999 }).then(res => {
      // 判断是否可以点名，默认是
      let canRollCall = true;
      // 选择的时间大于当前时间
      if (new Date(date).getTime() > new Date(timestampToTime(new Date())).getTime()) {
        canRollCall = false
      }
      else {
        canRollCall = true;
      }
      if (res.rows && res.rows.length > 0) {
        res.rows.forEach(item => {
          if (item.button == '0' && canRollCall) {
            // 如果选中的日期小于当前日期并且状态为0，可以点名
            item["showButton"] = true;
          }
          else {
            item["showButton"] = false;
          }
        })
      }
      console.log("rows: ", res.rows);
      this.setData({
        rollCallDatas: res.rows,
        total: res.total
      })
    })
  },

  // 去点名
  gotoOrder(e) {
    wx.navigateTo({
      url: `/pages/operation/class/classOrder/index?id=${e.currentTarget.dataset.query.id}&orderNo=${e.currentTarget.dataset.query.orderNo}&idsStr=${e.currentTarget.dataset.query.courseIds}&classDate=${e.currentTarget.dataset.query.classDate}&cofId=${e.currentTarget.dataset.query.cofId}`,
    })
  },

  // 调整课次
  changeSchedule(e) {
    const item = e.currentTarget.dataset.query;
    console.log("iii: ", item)
    if (item.button == '1') {
      // 已经点过名,不能再调整课次
      return;
    }
    this.setData({
      showSchedule: true,
      "scheduleObj.id": item.id,
      "scheduleObj.cofId": item.cofId,
      "scheduleObj.orderNo": item.orderNo,
      "scheduleObj.className": item.className,
      "scheduleObj.classDate": item.classDate,
      "scheduleObj.classStartTime": item.classStartTime,
      "scheduleObj.classEndTime": item.classEndTime,
      "scheduleObj.teacherName": item.teacherName,
      "scheduleObj.classRoomName": item.classRoomName,
      "scheduleObj.totalNum": item.totalNum,
      "scheduleObj.isVip": item.isVip,
      "scheduleObj.courseIds": item.courseIds,
      "scheduleObj.classId": item.classId
    })
  },
  // 调整课次类型
  onRadioChange(e) {
    this.setData({
      "scheduleObj.type": e.detail
    })
  },
  // 确定调整课次
  confirmSchedule() {
    if (this.data.scheduleObj.type == '1') {
      // 只调整此次课程
      this.setData({
        showSchedule: false
      })
      wx.navigateTo({
        url: `/pages/operation/class/classCourseEdit/index?id=${this.data.scheduleObj.id}&orderNo=${this.data.scheduleObj.orderNo}`,
      })
    }
    else {
      // 调整此次课次及后续课次
      const obj = {
        id: this.data.scheduleObj.cofId,
        lessonType: this.data.scheduleObj.isVip,
        idsStr: this.data.scheduleObj.courseIds,
        className: this.data.scheduleObj.className,
        classId: this.data.scheduleObj.classId
      }
      // console.log("aaa: ", obj, this.data.scheduleObj)
      // return;
      const params = JSON.stringify(obj);
      this.setData({
        showSchedule: false
      })
      wx.navigateTo({
        url: `/pages/operation/class/classSchedule/index?params=${params}`,
      })
    }
  },
  onClosePopup() {
    this.setData({
      showSchedule: false
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})